import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
// 定义初始的,不管任何数据都会赋值给state
// 其中的数据为只有结构,没有整整的数据
// 今后要新增全局共享的数据,只要挂载到initState对象中即可
let initState = {
  tokenInfo: {
    token: '',
    refresh_token: ''
  }
}
// 从loaclSrorage中读取
const stateStr = localStorage.getItem('state')
console.log(stateStr)
if (stateStr != null) {
  initState = JSON.parse(stateStr)
}

export default new Vuex.Store({
  // state有两种情况
  // 一种initState为nall
  // 一种initState为其他
  state: initState,
  // {
  //   // tokenInfo 对象的格式为{token, refresh_token}
  //   tokenInfo: {
  //     token: '',
  //     refresh_token: ''
  //   }
  // },
  mutations: {
    // 专门用来修改tokenInfo的方法
    updateTokenInfo (state, payload) {
      state.tokenInfo = payload
      // state中的发生改变,就需要Mutataions  所以 写这
      localStorage.setItem('state', JSON.stringify(state))
    }
  },
  actions: {
  },
  // 今后的人资后台管理项目会大量使用vuex中的模块
  modules: {
  }

})
